package sg.edu.nus.iss.ooad.jass.dao;

import java.util.List;
import sg.edu.nus.iss.ooad.jass.entity.Jobseeker;

/**
 *
 * Interface class for Jobseeker Data Access Object.
 *
 * @author Isak Rabin (HT082193M)
 * @version 1.0
 * @since 1.0
 *
 * Development Environment : Netbeans IDE v6.7
 * Name of the File        : IJobseekerDAO.java
 * Creation / Modification History
 *         Isak Rabin        20-Sep-2009        Created
 *
 */
public interface IJobseekerDAO {

        /**
         * Create new jobseeker entity and store it to the persistent data.
         * @param jobseeker The jobseeker entity.
         * @return True if new jobseeker successfully created.
         */
        public boolean createJobseeker(Jobseeker jobseeker);

        /**
         * Retrieve jobseeker entity from persistent data.
         * @param ID The ID of Jobseeker.
         * @return Jobseeker object or null if Jobseeker cannot be found.
         */
        public Jobseeker retrieveJobseeker(String ID);

        /**
         * Update existing jobseeker.
         * @param jobseeker The jobseeker entity.
         * @return True if jobseeker has successfully updated.
         */
        public boolean updateJobseeker(Jobseeker jobseeker);

        /**
         * Mark jobseeker as deleted.
         * @param jobseeker The jobseeker entity.
         * @return True if jobseeker has successfully mark as deleted.
         */
        public boolean deleteJobseeker(Jobseeker jobseeker);

         /**
         * Retrieve  jobseeker by email
         * @return   jobseeker Jobseeker object.
         */
        public Jobseeker getJobseekerByEmail(String email );

        /**
         * Retrieve all jobseekers.
         * @return List of jobseeker.
         */
        public List<Jobseeker> getAllJobseeker();

}
